<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>闭包</title>
</head>
<body>
<script>
  /*
  *
  *
  * 函数也是对象 既然是对象的话那么久保存在堆内存中
  * function foo(){
  * }
  *
  * 其实久相当于在堆内存中创建一个对象 栈内存中的foo变量指向这个函数
  * 所不同的是一般的对象里面是数据 而函数对象内部是可执行的代码
  *
  * */
  function getCounter() {
    let count = 0

    return function() {
      console.log(++count);
    }
  }

  let counter = getCounter()
  counter()
  counter()
  counter()


</script>
</body>
</html>